//#include<iostream>
//using namespace std;
//class Time
//{
//public:
//	Time(int hour,int minute,int second)
//		:_hour(hour)
//		,_minute(minute)
//		,_second(second)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//};
//class Date
//{
//public:
//	Date()
//		:_year(2024)
//		,_month(5)
//		,_day(24)
//		,_t(1,1,1)
//	{
//		cout << "Date()" << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//	Time _t;
//};
//int main()
//{
//	Date d1;
//	return 0;
//}

//#include<iostream>
//using namespace std;
//class Time
//{
//public:
//	Time(int hour, int minute, int second)
//		:_hour(hour)
//		,_minute(minute)
//		,_second(second)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//};
//class Date
//{
//public:
//	Date()
//		//:_year()
//		//,_month()
//		//,_day()
//		:_t(1,1,1)
//	{
//		cout << "Date()" << endl;
//	}
//private:
//	//声明
//	int _year=2024;//缺省值
//	int _month=5;
//	int _day=24;
//	Time _t;
//};
//int main()
//{
//	Date d1;
//	return 0;
//}



//#include<iostream>
//using namespace std;
//class Date
//{
//public:
//	Date(int year, int month, int day,int& x)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//		,_n(1)
//		,_ref(x)
//	{
//
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//
//	const int _n;
//	int& _ref;
//};
//int main()
//{
//	int x = 10;
//	Date d1(2024, 5, 24, x);
//}


//#include<iostream>
//using namespace std;
//class Time
//{
//public:
//	Time(int hour)
//	{
//		cout << "Time()" << endl;
//		_hour = 0;
//		_minute = 0;
//		_second = 0;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//};
//class Date
//{
//public:
//	Date(int year=0, int month=0, int day=0)
//		:_t(1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//private:
//	//声明
//	int _year;
//	int _month;
//	int _day;
//	Time _t;
//};
//int main()
//{
//	Date d;
//	return 0;
//}

//#include<iostream>
//using namespace std;
//class A
//{
//public:
//	A(int a , int b )
//		:_a(a)
//	{
//		cout << "A()" << endl;
//	}
//private:
//	int _a;
//};
//class Date
//{
//public:
//	Date(int year, int month, int day, int& x)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//		,_n(1)
//		,_ref(x)
//		,_aa(1,2)
//		,_p((int*)malloc(sizeof(int)))
//	{
//		if (_p == nullptr)
//		{
//			perror("malloc fail");
//		}
//		cout << "Date()" << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//
//	const int _n;
//	int& _ref;
//	A _aa;
//	int* _p;
//};
//int main()
//{
//	int x = 10;
//	Date d1(2024, 6, 24, x);
//	A _a(1, 2);
//	return 0;
//}

#include<iostream>
using namespace std;
class C
{
public:
	C(int x = 0)
		:_x(x)
	{}
private:
	int _x;
};
class B
{
private: 
	//缺省值
	int a = 1;
	int* p1 = nullptr;
	int* p2 = (int*)malloc(4);
};
int main()
{
	B bb;
	C cc1(1);
	//单参数构造函数支持隐式类型转换
	C cc2 = 2;//本质：2构造一个临时变量再拷贝构造
}